<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="stylesheet" href="css/reset.css" />
    <link rel="stylesheet" href="css/main.css" />
    <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript" src="js/jquery-ui.min.js"></script>
    <script type="text/javascript" src="js/jquery.mousewheel.js"></script>
    <title>聊天机器人</title>
  </head>

  <body>
    <div class="wrap">
      <!-- 头部 Header 区域 -->
      <div class="header">
        <h3>小思同学</h3>
        <img src="img/person01.png" alt="icon" />
      </div>
      <!-- 中间 聊天内容区域 -->
      <div class="main">
        <ul class="talk_list" style="top: 0px">
          <li class="left_word">
            <img src="img/person01.png" />
            <span>你好</span>
          </li>
          <li class="right_word">
            <img src="img/person02.png" />
            <span>你好哦</span>
          </li>
        </ul>
        <div class="drag_bar" style="display: none">
          <div
            class="drager ui-draggable ui-draggable-handle"
            style="display: none; height: 412.628px"
          ></div>
        </div>
      </div>
      <!-- 底部 消息编辑区域 -->
      <div class="footer">
        <img src="img/person02.png" alt="icon" />
        <input type="text" placeholder="说的什么吧..." class="input_txt" />
        <input type="button" value="发 送" class="input_sub" />
      </div>
      <audio id="myAudio" src="" style="display: none" autoplay></audio>
    </div>
    <script type="text/javascript" src="js/scroll.js"></script>
    <script src="./js/axios.js"></script>
    <script>
      $(function () {
        // 初始化右侧滚动条
        // 这个方法定义在scroll.js中
        resetui();

        // 要求的功能：
        // 1.输入框里面的内容输出后显示在页面上，并且机器人根据我们发送的内容进行回答，这个回答也需要显示在页面上
        // 思路：1.点击发送后获取我们在输入框里面输入的内容
        // 2.将这个内容传到服务器，服务器传输过来的内容就是机器人的内容
        // 3.将这个内容显示在页面上
        // 4.最后做语音转换

        // 1.点击发送后获取我们在输入框里面输入的内容
        // 封装函数，点击事件，点击.input_sub,获取.input_txt的内容

        // 这是点击发送

        $('.input_sub').on('click', function () {
          getMsg();

          //  按回车键发送
        });
        $('.input_txt').on('keydown', function (event) {
          if (event.keyCode === 13) {
            getMsg();
          }
        });
        function getMsg() {
          if (!$('.input_txt').val()) return;
          let txt = $('.input_txt').val()
          $('.talk_list').append(` <li class="right_word">
            <img src="img/person02.png" />
            <span>${txt}</span>
          </li>`);
       $('.input_txt').val('')
          axios({
            url: 'http://www.liulongbin.top:3009/api/robot',
            params: { spoken: txt},
          }).then(({ data }) => {
            // 此时服务器已经返回了机器人说的话，我们要把这个数据展示在页面上
            // 获取结构
            $('.talk_list').append(` <li class="left_word">
            <img src="img/person01.png" />
            <span>${data.data.info.text}</span>
          </li>`);
            transAudio(data.data.info.text);
          });
        }
        // 将机器人说的话转换成语音
        // 思路：将机器人说的话转到服务器，然后服务器转成语音返回，返回的是地址，放到audio里面即可
        function transAudio(text) {
          //这里先随便写个形参，这个形参就是用来表示传递的机器人说的话
          axios({
            url: 'http://www.liulongbin.top:3009/api/synthesize',
            params: {
              text,
            },
          }).then(({ data }) => {
            $('#myAudio').attr('src', data.voiceUrl);//这里是用jq的方法修改属性
          });
        }
      });
    </script>
  </body>
</html>
